home *** CD-ROM | disk | FTP | other *** search
/ CU Amiga Super CD-ROM 12 / CU Amiga Magazine's Super CD-ROM 12 (1997)(EMAP Images)(GB)[!][issue 1997-07].iso / CUCD / Games / DestructivePoker / sources / sources.lha / cardpile.h < prev    next >
C/C++ Source or Header  |  1997-02-13  |  2KB  |  61 lines

  1. /*
  2.  
  3.     cardpile.h (cJakoPakan määrittelytiedosto)
  4.  
  5.     V1.00 - 141096    Kimmo Teräväinen
  6.     -----   ------  -------------------------------------
  7.     V0.01   141096  Started
  8.     V0.05   151096  pakka osaa tärkeimmät toiminnot
  9.         V0.06   201096  cPakka periytyy caKuviosta
  10.         V0.07   211096  cPakka -> caPakka, josta cJakoPakka, cKasiPakka ja
  11.                         cPoistoPakka periytyy.
  12.         V0.08   031196  caPakka -> caCardPile
  13.         V0.10   111196  No longer abstract.
  14.         V0.15   201196  Perfect standard pile (deck of cards).
  15.         V0.17   261196  cCard-array -> cIMGCard * -array
  16.                 130297  Commented in English.
  17.  
  18. INFO:
  19.         cCardPile is virtual deck of cards.
  20.  
  21. */
  22. #ifndef DC1_POKER_CARDPILE
  23. #define DC1_POKER_CARDPILE
  24.  
  25.  
  26. #include "card.h"
  27.  
  28.  
  29. class cCardPile {
  30. protected:
  31.   cIMGCard **cards; // pointer array of cards
  32.   int        n,max; // amount of card and size of array
  33.   cPoint pos;
  34.  
  35.   void insert(cIMGCard *card) { if(n<max) cards[n++]=card; }
  36. public:
  37.   cCardPile(int lkm,int x,int y) :
  38.      pos(x,y)
  39.   {
  40.     n=max=0;
  41.     if(lkm) cards=new cIMGCard*[lkm]; else cards=NULL;
  42.     if(cards) max=lkm;
  43.   }
  44.   virtual ~cCardPile() { if(cards) delete [] cards; }
  45.  
  46.   virtual cIMGCard *Deal();             // removes last card
  47.   virtual cIMGCard *Remove(int);        // removes asked card
  48.   virtual void Insert(cIMGCard *);      // inserts card to pile
  49.   virtual void Insert(cCardPile &);     // takes cards from other pile
  50.  
  51.   virtual void Erase() { n=0; }         // clear pile, but
  52.                                         // 'leaves cards to table'
  53.  
  54.   virtual int Can_Insert() const        { return n<max; }
  55.   virtual int Can_Insert(cIMGCard *) const { return Can_Insert(); }
  56.  
  57. //  virtual void Shuffle() {}             // Shuffle
  58.  
  59. };
  60.  
  61. #endif